this.panelBox.connect('allocation-changed',
Lang.bind(this, this._updatePanelBarriers));
+ this.screenShieldGroup = new St.Widget({ name: 'screenShieldGroup',
+ visible: false
+ });
+ // FIXME: This is going to slow everything down by a big factor
+ // Need a better solution (like a layout manager?)
+ let constraint = new Clutter.BindConstraint({ source: global.stage,
+ coordinate: Clutter.BindCoordinate.ALL
+ });
+ this.screenShieldGroup.add_constraint(constraint);
+ this.addChrome(this.screenShieldGroup);
+
this.trayBox = new St.BoxLayout({ name: 'trayBox' });
this.addChrome(this.trayBox);
this.trayBox.connect('allocation-changed',
Name: 'ScreenShield',
_init: function() {
+ this.actor = Main.layoutManager.screenShieldGroup;
+
this._presence = new GnomeSession.Presence(Lang.bind(this, function(proxy, error) {
if (error) {
logError(error, 'Error while reading gnome-session presence');
this._isModal = false;
this._isLocked = false;
- this._group = new St.Widget({ x: 0,
- y: 0 });
- Main.uiGroup.add_actor(this._group);
- let constraint = new Clutter.BindConstraint({ source: global.stage,
- coordinate: Clutter.BindCoordinate.POSITION | Clutter.BindCoordinate.SIZE });
- this._group.add_constraint(constraint);
-
- this._lightbox = new Lightbox.Lightbox(this._group,
+
+ this._lightbox = new Lightbox.Lightbox(Main.uiGroup,
{ inhibitEvents: true, fadeInTime: 10, fadeFactor: 1 });
+
this._background = Meta.BackgroundActor.new_for_screen(global.screen);
- this._background.hide();
- Main.uiGroup.add_actor(this._background);
+ this.actor.add_actor(this._background);
},
_onStatusChanged: function(status) {
this._dialog = null;
}
- this._group.reactive = true;
if (!this._isModal) {
- Main.pushModal(this._group);
+ Main.pushModal(this.actor);
this._isModal = true;
}
},
_popModal: function() {
- this._group.reactive = false;
- Main.popModal(this._group);
+ this._lightbox.hide();
- this._background.hide();
+ Main.popModal(this.actor);
+ this.actor.hide();
this._isModal = false;
this._isLocked = false;